When executing an opcode sequence of a software program, errors may occur, which, if they remain undetected, can cause undesired malfunctions.
According to the prior art, along with error correction, error detection is conducted, to avoid undesired malfunctions. Error detection may be conducted by employing software-checks, by using hardware redundancy (multiple CPUs) and by employing error detecting codes. Regarding codes, one can distinguish between pure error detecting codes being part of a memory block or a signature being integrated into the opcode sequence.
These implementations have the disadvantage that they often exhibit a very high overhead regarding the hardware implementation or that they require lots of memory and/or have a considerable influence on the program that shall be protected. Moreover, error detection mechanism only work at the point where a signature solution exists, but no continuous error detection mechanism can be established. As the signature solutions being integrated into the code have to be adapted to the opcode sizes, no adaptively scalable protection is possible.